package ar.com.fiuba.ElectronicCircuitAnalyst.domain.api;

import java.util.List;

import ar.com.fiuba.ElectronicCircuitAnalyst.domain.exceptions.EvaluationException;

/**
 * A simple logical function.
 */
public interface LogicalFunction {

	/**
	 * Evaluates the function for the given values.
	 * 
	 * B = f(B1, B2, ...)
	 * 
	 * @param values
	 *            the input values
	 * @return the result of the evaluation
	 * @throws EvaluationException 
	 */
	public Boolean evaluate(List<Boolean> values) throws EvaluationException;

}
